<!--
  * t
  ****************************************************************************
  * Copyright 2021-2023,2024 Thomas E. Dickey                                *
  * Copyright 2008-2015,2017 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  * "Software"), to deal in the Software without restriction, including      *
  * without limitation the rights to use, copy, modify, merge, publish,      *
  * distribute, distribute with modifications, sublicense, and/or sell       *
  * copies of the Software, and to permit persons to whom the Software is    *
  * furnished to do so, subject to the following conditions:                 *
  *                                                                          *
  * The above copyright notice and this permission notice shall be included  *
  * in all copies or substantial portions of the Software.                   *
  *                                                                          *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
  *                                                                          *
  * Except as contained in this notice, the name(s) of the above copyright   *
  * holders shall not be used in advertising or otherwise to promote the     *
  * sale, use or other dealings in this Software without prior written       *
  * authorization.                                                           *
  ****************************************************************************
  * @Id: curs_threads.3x,v 1.56 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
<TITLE>curs_threads 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">

</HEAD>
<BODY>
<H1 class="no-header">curs_threads 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>                 Library calls                <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>




</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
       <EM>NCURSES</EM><STRONG>_</STRONG><EM>WINDOW</EM><STRONG>_</STRONG><EM>CB</EM>,   <EM>NCURSES</EM><STRONG>_</STRONG><EM>SCREEN</EM><STRONG>_</STRONG><EM>CB</EM>,   <STRONG>get_escdelay</STRONG>,   <STRONG>set_escdelay</STRONG>,
       <STRONG>set_tabsize</STRONG>, <STRONG>use_screen</STRONG>, <STRONG>use_window</STRONG> - <EM>curses</EM> support for multi-threaded
       applications


</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>

       <EM>/*</EM> <EM>data</EM> <EM>types</EM> <EM>*/</EM>
       <STRONG>typedef</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_WINDOW_CB)(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>
       <STRONG>typedef</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_SCREEN_CB)(SCREEN</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>

       <STRONG>int</STRONG> <STRONG>get_escdelay(void);</STRONG>
       <STRONG>int</STRONG> <STRONG>set_escdelay(int</STRONG> <EM>ms</EM><STRONG>);</STRONG>
       <STRONG>int</STRONG> <STRONG>set_tabsize(int</STRONG> <EM>cols</EM><STRONG>);</STRONG>

       <STRONG>int</STRONG> <STRONG>use_screen(SCREEN</STRONG> <STRONG>*</STRONG><EM>scr</EM><STRONG>,</STRONG> <STRONG>NCURSES_SCREEN_CB</STRONG> <EM>func</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>data</EM><STRONG>);</STRONG>
       <STRONG>int</STRONG> <STRONG>use_window(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>NCURSES_WINDOW_CB</STRONG> <EM>func</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>data</EM><STRONG>);</STRONG>


</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
       The  <EM>ncurses</EM>  library  can  be  configured  to  support  multi-threaded
       applications in a  rudimentary  way.   Such  configuration  produces  a
       different set of libraries, named <EM>libncursest</EM>, for example, since doing
       so alters <EM>ncurses</EM>'s application binary interface (ABI).

       Instead of modifying the programming interface (API)  to  make  <EM>ncurses</EM>
       functions  expect  an  additional  argument  specifying  a  thread, the
       library adds functions, usable in  any  configuration,  that  hide  the
       <EM>mutexes</EM> (mutual exclusion locks) needed to prevent concurrent access to
       variables shared by multiple threads of execution.

       <EM>ncurses</EM> threading support requires  the  use  of  functions  to  access
       members  of  the  <EM>WINDOW</EM>  structure  (see <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>).  It further
       makes functions of the common  global  variables  <STRONG>COLORS</STRONG>,  <STRONG>COLOR_PAIRS</STRONG>,
       <STRONG>COLS</STRONG>,   <STRONG>ESCDELAY</STRONG>,   <STRONG>LINES</STRONG>,   <STRONG>TABSIZE</STRONG>,   <STRONG>curscr</STRONG>,  <STRONG>newscr</STRONG>,  and  <STRONG>ttytype</STRONG>,
       maintaining them as as read-only values in the <EM>SCREEN</EM> structure.

       Even this is not enough to make an  application  using  <EM>curses</EM>  thread-
       safe.   We  would  expect  a multi-threaded application to have threads
       updating separate windows (on the same device),  and  separate  screens
       (on  different  devices).   Further,  applications  expect a few of the
       global variables to be writable.  The functions described here  address
       these special situations.

       The  <STRONG>ESCDELAY</STRONG>  and  <STRONG>TABSIZE</STRONG>  global  variables  are  modified  by  some
       applications.   To  modify  them  in   any   configuration,   use   the
       <STRONG>set_escdelay</STRONG>  or <STRONG>set_tabsize</STRONG> functions.  Other global variables are not
       modifiable.  <STRONG>get_escdelay</STRONG> retrieves <STRONG>ESCDELAY</STRONG>'s value.

       The <STRONG>use_window</STRONG> and <STRONG>use_screen</STRONG> functions provide coarse-grained  mutexes
       for  their  respective  <EM>WINDOW</EM> and <EM>SCREEN</EM> parameters; they call a user-
       supplied function, pass it a <EM>data</EM> parameter, and return the value  from
       the user-supplied function to the application.


</PRE><H3><a name="h3-Usage">Usage</a></H3><PRE>
       All  <EM>ncurses</EM>  library  functions  assume that the locale is not altered
       during operation.  In addition, they use data that is maintained within
       a hierarchy of scopes.

       <STRONG>o</STRONG>   global data used in the low-level <EM>terminfo</EM> or <EM>termcap</EM> interfaces

       <STRONG>o</STRONG>   terminal data associated with a call to <STRONG><A HREF="curs_terminfo.3x.html">set_curterm(3x)</A></STRONG>

           Terminal data are initialized when screens are created.

       <STRONG>o</STRONG>   screen data associated with a call to <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>

       <STRONG>o</STRONG>   window data associated with a call to <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG> or <STRONG><A HREF="subwin.3x.html">subwin(3x)</A></STRONG>

           Windows  are  associated  with  screens.   Pads are not necessarily
           associated with any particular screen.

           Most <EM>curses</EM> applications operate on one or more  windows  within  a
           single screen.

       <STRONG>o</STRONG>   reentrant  data  associated  with  "pure"  functions  that alter no
           shared variables

       The following table lists the scope  of  each  symbol  in  the  <EM>ncurses</EM>
       library when configured to support multi-threaded applications.

       <STRONG>Symbol</STRONG>                 <STRONG>Scope</STRONG>
       ------------------------------------------------------------------------
       <STRONG>BC</STRONG>                     global
       <STRONG>COLORS</STRONG>                 screen (read-only)
       <STRONG>COLOR_PAIR</STRONG>             reentrant
       <STRONG>COLOR_PAIRS</STRONG>            screen (read-only)
       <STRONG>COLS</STRONG>                   screen (read-only)
       <STRONG>ESCDELAY</STRONG>               screen (read-only; see <STRONG>set_escdelay</STRONG>)
       <STRONG>LINES</STRONG>                  screen (read-only)
       <STRONG>PAIR_NUMBER</STRONG>            reentrant
       <STRONG>PC</STRONG>                     global
       <STRONG>SP</STRONG>                     global
       <STRONG>TABSIZE</STRONG>                screen (read-only; see <STRONG>set_tabsize</STRONG>)
       <STRONG>UP</STRONG>                     global
       <STRONG>acs_map</STRONG>                screen (read-only)
       <STRONG>add_wch</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>add_wchnstr</STRONG>            window (<STRONG>stdscr</STRONG>)
       <STRONG>add_wchstr</STRONG>             window (<STRONG>stdscr</STRONG>)
       <STRONG>addch</STRONG>                  window (<STRONG>stdscr</STRONG>)
       <STRONG>addchnstr</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>addchstr</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>addnstr</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>addnwstr</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>addstr</STRONG>                 window (<STRONG>stdscr</STRONG>)
       <STRONG>addwstr</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>assume_default_colors</STRONG>  screen
       <STRONG>attr_get</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>attr_off</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>attr_on</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>attr_set</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>attroff</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>attron</STRONG>                 window (<STRONG>stdscr</STRONG>)
       <STRONG>attrset</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>baudrate</STRONG>               screen
       <STRONG>beep</STRONG>                   screen
       <STRONG>bkgd</STRONG>                   window (<STRONG>stdscr</STRONG>)
       <STRONG>bkgdset</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>bkgrnd</STRONG>                 window (<STRONG>stdscr</STRONG>)
       <STRONG>bkgrndset</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>boolcodes</STRONG>              global (read-only)
       <STRONG>boolfnames</STRONG>             global (read-only)
       <STRONG>boolnames</STRONG>              global (read-only)
       <STRONG>border</STRONG>                 window (<STRONG>stdscr</STRONG>)
       <STRONG>border_set</STRONG>             window (<STRONG>stdscr</STRONG>)
       <STRONG>box</STRONG>                    window (<STRONG>stdscr</STRONG>)
       <STRONG>box_set</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>can_change_color</STRONG>       terminal
       <STRONG>cbreak</STRONG>                 screen

       <STRONG>chgat</STRONG>                  window (<STRONG>stdscr</STRONG>)
       <STRONG>clear</STRONG>                  window (<STRONG>stdscr</STRONG>)
       <STRONG>clearok</STRONG>                window
       <STRONG>clrtobot</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>clrtoeol</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>color_content</STRONG>          screen
       <STRONG>color_set</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>copywin</STRONG>                window (locks source, target)
       <STRONG>cur_term</STRONG>               terminal
       <STRONG>curs_set</STRONG>               screen
       <STRONG>curscr</STRONG>                 screen (read-only)
       <STRONG>curses_version</STRONG>         global (read-only)
       <STRONG>def_prog_mode</STRONG>          terminal
       <STRONG>def_shell_mode</STRONG>         terminal
       <STRONG>define_key</STRONG>             screen
       <STRONG>del_curterm</STRONG>            screen
       <STRONG>delay_output</STRONG>           screen
       <STRONG>delch</STRONG>                  window (<STRONG>stdscr</STRONG>)
       <STRONG>deleteln</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>delscreen</STRONG>              global (locks screen list, screen)
       <STRONG>delwin</STRONG>                 global (locks window list)
       <STRONG>derwin</STRONG>                 screen
       <STRONG>doupdate</STRONG>               screen
       <STRONG>dupwin</STRONG>                 screen (locks window)
       <STRONG>echo</STRONG>                   screen
       <STRONG>echo_wchar</STRONG>             window (<STRONG>stdscr</STRONG>)
       <STRONG>echochar</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>endwin</STRONG>                 screen
       <STRONG>erase</STRONG>                  window (<STRONG>stdscr</STRONG>)
       <STRONG>erasechar</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>erasewchar</STRONG>             window (<STRONG>stdscr</STRONG>)
       <STRONG>filter</STRONG>                 global
       <STRONG>flash</STRONG>                  terminal
       <STRONG>flushinp</STRONG>               screen
       <STRONG>get_wch</STRONG>                screen (input operation)
       <STRONG>get_wstr</STRONG>               screen (input operation)
       <STRONG>getattrs</STRONG>               window
       <STRONG>getbegx</STRONG>                window
       <STRONG>getbegy</STRONG>                window
       <STRONG>getbkgd</STRONG>                window
       <STRONG>getbkgrnd</STRONG>              window
       <STRONG>getcchar</STRONG>               reentrant
       <STRONG>getch</STRONG>                  screen (input operation)
       <STRONG>getcurx</STRONG>                window
       <STRONG>getcury</STRONG>                window
       <STRONG>getmaxx</STRONG>                window
       <STRONG>getmaxy</STRONG>                window
       <STRONG>getmouse</STRONG>               screen (input operation)
       <STRONG>getn_wstr</STRONG>              screen (input operation)
       <STRONG>getnstr</STRONG>                screen (input operation)
       <STRONG>getparx</STRONG>                window
       <STRONG>getpary</STRONG>                window
       <STRONG>getstr</STRONG>                 screen (input operation)
       <STRONG>getwin</STRONG>                 screen (input operation)
       <STRONG>halfdelay</STRONG>              screen
       <STRONG>has_colors</STRONG>             terminal
       <STRONG>has_ic</STRONG>                 terminal
       <STRONG>has_il</STRONG>                 terminal
       <STRONG>has_key</STRONG>                screen
       <STRONG>hline</STRONG>                  window (<STRONG>stdscr</STRONG>)
       <STRONG>hline_set</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>idcok</STRONG>                  window
       <STRONG>idlok</STRONG>                  window
       <STRONG>immedok</STRONG>                window
       <STRONG>in_wch</STRONG>                 window (<STRONG>stdscr</STRONG>)
       <STRONG>in_wchnstr</STRONG>             window (<STRONG>stdscr</STRONG>)

       <STRONG>in_wchstr</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>inch</STRONG>                   window (<STRONG>stdscr</STRONG>)
       <STRONG>inchnstr</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>inchstr</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>init_color</STRONG>             screen
       <STRONG>init_pair</STRONG>              screen
       <STRONG>initscr</STRONG>                global (locks screen list)
       <STRONG>innstr</STRONG>                 window (<STRONG>stdscr</STRONG>)
       <STRONG>innwstr</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>ins_nwstr</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>ins_wch</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>ins_wstr</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>insch</STRONG>                  window (<STRONG>stdscr</STRONG>)
       <STRONG>insdelln</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>insertln</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>insnstr</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>insstr</STRONG>                 window (<STRONG>stdscr</STRONG>)
       <STRONG>instr</STRONG>                  window (<STRONG>stdscr</STRONG>)
       <STRONG>intrflush</STRONG>              terminal
       <STRONG>inwstr</STRONG>                 window (<STRONG>stdscr</STRONG>)
       <STRONG>is_cleared</STRONG>             window
       <STRONG>is_idcok</STRONG>               window
       <STRONG>is_idlok</STRONG>               window
       <STRONG>is_immedok</STRONG>             window
       <STRONG>is_keypad</STRONG>              window
       <STRONG>is_leaveok</STRONG>             window
       <STRONG>is_linetouched</STRONG>         window
       <STRONG>is_nodelay</STRONG>             window
       <STRONG>is_notimeout</STRONG>           window
       <STRONG>is_scrollok</STRONG>            window
       <STRONG>is_syncok</STRONG>              window
       <STRONG>is_term_resized</STRONG>        terminal
       <STRONG>is_wintouched</STRONG>          window
       <STRONG>isendwin</STRONG>               screen
       <STRONG>key_defined</STRONG>            screen
       <STRONG>key_name</STRONG>               global (static data)
       <STRONG>keybound</STRONG>               screen
       <STRONG>keyname</STRONG>                global (static data)
       <STRONG>keyok</STRONG>                  screen
       <STRONG>keypad</STRONG>                 window
       <STRONG>killchar</STRONG>               terminal
       <STRONG>killwchar</STRONG>              terminal
       <STRONG>leaveok</STRONG>                window
       <STRONG>longname</STRONG>               screen
       <STRONG>mcprint</STRONG>                terminal
       <STRONG>meta</STRONG>                   screen
       <STRONG>mouse_trafo</STRONG>            window (<STRONG>stdscr</STRONG>)
       <STRONG>mouseinterval</STRONG>          screen
       <STRONG>mousemask</STRONG>              screen
       <STRONG>move</STRONG>                   window (<STRONG>stdscr</STRONG>)
       <STRONG>mvadd_wch</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>mvadd_wchnstr</STRONG>          window (<STRONG>stdscr</STRONG>)
       <STRONG>mvadd_wchstr</STRONG>           window (<STRONG>stdscr</STRONG>)
       <STRONG>mvaddch</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>mvaddchnstr</STRONG>            window (<STRONG>stdscr</STRONG>)
       <STRONG>mvaddchstr</STRONG>             window (<STRONG>stdscr</STRONG>)
       <STRONG>mvaddnstr</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>mvaddnwstr</STRONG>             window (<STRONG>stdscr</STRONG>)
       <STRONG>mvaddstr</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>mvaddwstr</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>mvchgat</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>mvcur</STRONG>                  screen
       <STRONG>mvdelch</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>mvderwin</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>mvget_wch</STRONG>              screen (input operation)
       <STRONG>mvget_wstr</STRONG>             screen (input operation)

       <STRONG>mvgetch</STRONG>                screen (input operation)
       <STRONG>mvgetn_wstr</STRONG>            screen (input operation)
       <STRONG>mvgetnstr</STRONG>              screen (input operation)
       <STRONG>mvgetstr</STRONG>               screen (input operation)
       <STRONG>mvhline</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>mvhline_set</STRONG>            window (<STRONG>stdscr</STRONG>)
       <STRONG>mvin_wch</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>mvin_wchnstr</STRONG>           window (<STRONG>stdscr</STRONG>)
       <STRONG>mvin_wchstr</STRONG>            window (<STRONG>stdscr</STRONG>)
       <STRONG>mvinch</STRONG>                 window (<STRONG>stdscr</STRONG>)
       <STRONG>mvinchnstr</STRONG>             window (<STRONG>stdscr</STRONG>)
       <STRONG>mvinchstr</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>mvinnstr</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>mvinnwstr</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>mvins_nwstr</STRONG>            window (<STRONG>stdscr</STRONG>)
       <STRONG>mvins_wch</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>mvins_wstr</STRONG>             window (<STRONG>stdscr</STRONG>)
       <STRONG>mvinsch</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>mvinsnstr</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>mvinsstr</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>mvinstr</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>mvinwstr</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>mvprintw</STRONG>               window (<STRONG>stdscr</STRONG>)
       <STRONG>mvscanw</STRONG>                screen
       <STRONG>mvvline</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>mvvline_set</STRONG>            window (<STRONG>stdscr</STRONG>)
       <STRONG>mvwadd_wch</STRONG>             window
       <STRONG>mvwadd_wchnstr</STRONG>         window
       <STRONG>mvwadd_wchstr</STRONG>          window
       <STRONG>mvwaddch</STRONG>               window
       <STRONG>mvwaddchnstr</STRONG>           window
       <STRONG>mvwaddchstr</STRONG>            window
       <STRONG>mvwaddnstr</STRONG>             window
       <STRONG>mvwaddnwstr</STRONG>            window
       <STRONG>mvwaddstr</STRONG>              window
       <STRONG>mvwaddwstr</STRONG>             window
       <STRONG>mvwchgat</STRONG>               window
       <STRONG>mvwdelch</STRONG>               window
       <STRONG>mvwget_wch</STRONG>             screen (input operation)
       <STRONG>mvwget_wstr</STRONG>            screen (input operation)
       <STRONG>mvwgetch</STRONG>               screen (input operation)
       <STRONG>mvwgetn_wstr</STRONG>           screen (input operation)
       <STRONG>mvwgetnstr</STRONG>             screen (input operation)
       <STRONG>mvwgetstr</STRONG>              screen (input operation)
       <STRONG>mvwhline</STRONG>               window
       <STRONG>mvwhline_set</STRONG>           window
       <STRONG>mvwin</STRONG>                  window
       <STRONG>mvwin_wch</STRONG>              window
       <STRONG>mvwin_wchnstr</STRONG>          window
       <STRONG>mvwin_wchstr</STRONG>           window
       <STRONG>mvwinch</STRONG>                window
       <STRONG>mvwinchnstr</STRONG>            window
       <STRONG>mvwinchstr</STRONG>             window
       <STRONG>mvwinnstr</STRONG>              window
       <STRONG>mvwinnwstr</STRONG>             window
       <STRONG>mvwins_nwstr</STRONG>           window
       <STRONG>mvwins_wch</STRONG>             window
       <STRONG>mvwins_wstr</STRONG>            window
       <STRONG>mvwinsch</STRONG>               window
       <STRONG>mvwinsnstr</STRONG>             window
       <STRONG>mvwinsstr</STRONG>              window
       <STRONG>mvwinstr</STRONG>               window
       <STRONG>mvwinwstr</STRONG>              window
       <STRONG>mvwprintw</STRONG>              window
       <STRONG>mvwscanw</STRONG>               screen
       <STRONG>mvwvline</STRONG>               window

       <STRONG>mvwvline_set</STRONG>           window
       <STRONG>napms</STRONG>                  reentrant
       <STRONG>newpad</STRONG>                 global (locks window list)
       <STRONG>newscr</STRONG>                 screen (read-only)
       <STRONG>newterm</STRONG>                global (locks screen list)
       <STRONG>newwin</STRONG>                 global (locks window list)
       <STRONG>nl</STRONG>                     screen
       <STRONG>nocbreak</STRONG>               screen
       <STRONG>nodelay</STRONG>                window
       <STRONG>noecho</STRONG>                 screen
       <STRONG>nofilter</STRONG>               global
       <STRONG>nonl</STRONG>                   screen
       <STRONG>noqiflush</STRONG>              terminal
       <STRONG>noraw</STRONG>                  screen
       <STRONG>notimeout</STRONG>              window
       <STRONG>numcodes</STRONG>               global (read-only)
       <STRONG>numfnames</STRONG>              global (read-only)
       <STRONG>numnames</STRONG>               global (read-only)
       <STRONG>ospeed</STRONG>                 global
       <STRONG>overlay</STRONG>                window (locks source, target)
       <STRONG>overwrite</STRONG>              window (locks source, target)
       <STRONG>pair_content</STRONG>           screen
       <STRONG>pecho_wchar</STRONG>            screen
       <STRONG>pechochar</STRONG>              screen
       <STRONG>pnoutrefresh</STRONG>           screen
       <STRONG>prefresh</STRONG>               screen
       <STRONG>printw</STRONG>                 window
       <STRONG>putp</STRONG>                   global
       <STRONG>putwin</STRONG>                 window
       <STRONG>qiflush</STRONG>                terminal
       <STRONG>raw</STRONG>                    screen
       <STRONG>redrawwin</STRONG>              window
       <STRONG>refresh</STRONG>                screen
       <STRONG>reset_prog_mode</STRONG>        screen
       <STRONG>reset_shell_mode</STRONG>       screen
       <STRONG>resetty</STRONG>                terminal
       <STRONG>resize_term</STRONG>            screen (locks window list)
       <STRONG>resizeterm</STRONG>             screen
       <STRONG>restartterm</STRONG>            screen
       <STRONG>ripoffline</STRONG>             global (static data)
       <STRONG>savetty</STRONG>                terminal
       <STRONG>scanw</STRONG>                  screen
       <STRONG>scr_dump</STRONG>               screen
       <STRONG>scr_init</STRONG>               screen
       <STRONG>scr_restore</STRONG>            screen
       <STRONG>scr_set</STRONG>                screen
       <STRONG>scrl</STRONG>                   window (<STRONG>stdscr</STRONG>)
       <STRONG>scroll</STRONG>                 window
       <STRONG>scrollok</STRONG>               window
       <STRONG>set_curterm</STRONG>            screen
       <STRONG>set_escdelay</STRONG>           screen
       <STRONG>set_tabsize</STRONG>            screen
       <STRONG>set_term</STRONG>               global (locks screen list, screen)
       <STRONG>setcchar</STRONG>               reentrant
       <STRONG>setscrreg</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>setupterm</STRONG>              global
       <STRONG>slk_attr</STRONG>               screen
       <STRONG>slk_attr_off</STRONG>           screen
       <STRONG>slk_attr_on</STRONG>            screen
       <STRONG>slk_attr_set</STRONG>           screen
       <STRONG>slk_attroff</STRONG>            screen
       <STRONG>slk_attron</STRONG>             screen
       <STRONG>slk_attrset</STRONG>            screen
       <STRONG>slk_clear</STRONG>              screen
       <STRONG>slk_color</STRONG>              screen
       <STRONG>slk_init</STRONG>               screen

       <STRONG>slk_label</STRONG>              screen
       <STRONG>slk_noutrefresh</STRONG>        screen
       <STRONG>slk_refresh</STRONG>            screen
       <STRONG>slk_restore</STRONG>            screen
       <STRONG>slk_set</STRONG>                screen
       <STRONG>slk_touch</STRONG>              screen
       <STRONG>slk_wset</STRONG>               screen
       <STRONG>standend</STRONG>               window
       <STRONG>standout</STRONG>               window
       <STRONG>start_color</STRONG>            screen
       <STRONG>stdscr</STRONG>                 screen (read-only)
       <STRONG>strcodes</STRONG>               global (read-only)
       <STRONG>strfnames</STRONG>              global (read-only)
       <STRONG>strnames</STRONG>               global (read-only)
       <STRONG>subpad</STRONG>                 window
       <STRONG>subwin</STRONG>                 window
       <STRONG>syncok</STRONG>                 window
       <STRONG>term_attrs</STRONG>             screen
       <STRONG>termattrs</STRONG>              screen
       <STRONG>termname</STRONG>               terminal
       <STRONG>tgetent</STRONG>                global
       <STRONG>tgetflag</STRONG>               global
       <STRONG>tgetnum</STRONG>                global
       <STRONG>tgetstr</STRONG>                global
       <STRONG>tgoto</STRONG>                  global
       <STRONG>tigetflag</STRONG>              terminal
       <STRONG>tigetnum</STRONG>               terminal
       <STRONG>tigetstr</STRONG>               terminal
       <STRONG>timeout</STRONG>                window (<STRONG>stdscr</STRONG>)
       <STRONG>touchline</STRONG>              window
       <STRONG>touchwin</STRONG>               window
       <STRONG>tparm</STRONG>                  global (static data)
       <STRONG>tputs</STRONG>                  screen
       <STRONG>trace</STRONG>                  global (static data)
       <STRONG>ttytype</STRONG>                screen (read-only)
       <STRONG>typeahead</STRONG>              screen
       <STRONG>unctrl</STRONG>                 screen
       <STRONG>unget_wch</STRONG>              screen (input operation)
       <STRONG>ungetch</STRONG>                screen (input operation)
       <STRONG>ungetmouse</STRONG>             screen (input operation)
       <STRONG>untouchwin</STRONG>             window
       <STRONG>use_default_colors</STRONG>     screen
       <STRONG>use_env</STRONG>                global (static data)
       <STRONG>use_extended_names</STRONG>     global (static data)
       <STRONG>use_legacy_coding</STRONG>      screen
       <STRONG>use_screen</STRONG>             global (locks screen list, screen)
       <STRONG>use_window</STRONG>             global (locks window list, window)
       <STRONG>vid_attr</STRONG>               screen
       <STRONG>vid_puts</STRONG>               screen
       <STRONG>vidattr</STRONG>                screen
       <STRONG>vidputs</STRONG>                screen
       <STRONG>vline</STRONG>                  window (<STRONG>stdscr</STRONG>)
       <STRONG>vline_set</STRONG>              window (<STRONG>stdscr</STRONG>)
       <STRONG>vw_printw</STRONG>              window
       <STRONG>vw_scanw</STRONG>               screen
       <STRONG>vwprintw</STRONG>               window
       <STRONG>vwscanw</STRONG>                screen
       <STRONG>wadd_wch</STRONG>               window
       <STRONG>wadd_wchnstr</STRONG>           window
       <STRONG>wadd_wchstr</STRONG>            window
       <STRONG>waddch</STRONG>                 window
       <STRONG>waddchnstr</STRONG>             window
       <STRONG>waddchstr</STRONG>              window
       <STRONG>waddnstr</STRONG>               window
       <STRONG>waddnwstr</STRONG>              window
       <STRONG>waddstr</STRONG>                window

       <STRONG>waddwstr</STRONG>               window
       <STRONG>wattr_get</STRONG>              window
       <STRONG>wattr_off</STRONG>              window
       <STRONG>wattr_on</STRONG>               window
       <STRONG>wattr_set</STRONG>              window
       <STRONG>wattroff</STRONG>               window
       <STRONG>wattron</STRONG>                window
       <STRONG>wattrset</STRONG>               window
       <STRONG>wbkgd</STRONG>                  window
       <STRONG>wbkgdset</STRONG>               window
       <STRONG>wbkgrnd</STRONG>                window
       <STRONG>wbkgrndset</STRONG>             window
       <STRONG>wborder</STRONG>                window
       <STRONG>wborder_set</STRONG>            window
       <STRONG>wchgat</STRONG>                 window
       <STRONG>wclear</STRONG>                 window
       <STRONG>wclrtobot</STRONG>              window
       <STRONG>wclrtoeol</STRONG>              window
       <STRONG>wcolor_set</STRONG>             window
       <STRONG>wcursyncup</STRONG>             screen (affects window plus parents)
       <STRONG>wdelch</STRONG>                 window
       <STRONG>wdeleteln</STRONG>              window
       <STRONG>wecho_wchar</STRONG>            window
       <STRONG>wechochar</STRONG>              window
       <STRONG>wenclose</STRONG>               window
       <STRONG>werase</STRONG>                 window
       <STRONG>wget_wch</STRONG>               screen (input operation)
       <STRONG>wget_wstr</STRONG>              screen (input operation)
       <STRONG>wgetbkgrnd</STRONG>             window
       <STRONG>wgetch</STRONG>                 screen (input operation)
       <STRONG>wgetdelay</STRONG>              window
       <STRONG>wgetn_wstr</STRONG>             screen (input operation)
       <STRONG>wgetnstr</STRONG>               screen (input operation)
       <STRONG>wgetparent</STRONG>             window
       <STRONG>wgetscrreg</STRONG>             window
       <STRONG>wgetstr</STRONG>                screen (input operation)
       <STRONG>whline</STRONG>                 window
       <STRONG>whline_set</STRONG>             window
       <STRONG>win_wch</STRONG>                window
       <STRONG>win_wchnstr</STRONG>            window
       <STRONG>win_wchstr</STRONG>             window
       <STRONG>winch</STRONG>                  window
       <STRONG>winchnstr</STRONG>              window
       <STRONG>winchstr</STRONG>               window
       <STRONG>winnstr</STRONG>                window
       <STRONG>winnwstr</STRONG>               window
       <STRONG>wins_nwstr</STRONG>             window
       <STRONG>wins_wch</STRONG>               window
       <STRONG>wins_wstr</STRONG>              window
       <STRONG>winsch</STRONG>                 window
       <STRONG>winsdelln</STRONG>              window
       <STRONG>winsertln</STRONG>              window
       <STRONG>winsnstr</STRONG>               window
       <STRONG>winsstr</STRONG>                window
       <STRONG>winstr</STRONG>                 window
       <STRONG>winwstr</STRONG>                window
       <STRONG>wmouse_trafo</STRONG>           window
       <STRONG>wmove</STRONG>                  window
       <STRONG>wnoutrefresh</STRONG>           screen
       <STRONG>wprintw</STRONG>                window
       <STRONG>wredrawln</STRONG>              window
       <STRONG>wrefresh</STRONG>               screen
       <STRONG>wresize</STRONG>                window (locks window list)
       <STRONG>wscanw</STRONG>                 screen
       <STRONG>wscrl</STRONG>                  window
       <STRONG>wsetscrreg</STRONG>             window

       <STRONG>wstandend</STRONG>              window
       <STRONG>wstandout</STRONG>              window
       <STRONG>wsyncdown</STRONG>              screen (affects window plus parents)
       <STRONG>wsyncup</STRONG>                screen (affects window plus parents)
       <STRONG>wtimeout</STRONG>               window
       <STRONG>wtouchln</STRONG>               window
       <STRONG>wunctrl</STRONG>                global (static data)
       <STRONG>wvline</STRONG>                 window
       <STRONG>wvline_set</STRONG>             window


</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
       <STRONG>get_escdelay</STRONG>   returns   the   value  of  <STRONG>ESCDELAY</STRONG>.   <STRONG>set_escdelay</STRONG>  and
       <STRONG>set_tabsize</STRONG> return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon successful  completion.
       <STRONG>use_screen</STRONG>  and <STRONG>use_window</STRONG> return the <EM>int</EM> returned by the user-supplied
       function they are called with.


</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
       <EM>ncurses</EM> provides both a C function and a preprocessor  macro  for  each
       function documented in this page.


</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
       These  routines  are  specific  to <EM>ncurses</EM>.  They were not supported on
       Version 7, BSD or System V implementations.  It is recommended that any
       code   depending   on   <EM>ncurses</EM>   extensions   be   conditioned   using
       <STRONG>NCURSES_VERSION</STRONG>.


</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>



ncurses 6.5                       2024-03-16                  <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-Usage">Usage</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
</HTML>
